/**
 * 对表单的正则表达式验证等验证规则进行统一的管理
 */

export function username(rule, value, callback) {
  // \w 等价于 [A-Za-z0-9_]
  if (/^\w*$/.test(value) === false) {
    callback(new Error("仅能出现英文字符、数字与下划线"));
  } else {
    callback()
  }
}

export function phoneNumber(rule, value, callback) {
  if (/^(13\d|14[57]|15[012356789]|18[012356789])\d{8}$/.test(value) === false) {
    callback(new Error("请输入正确的手机号"));
  } else {
    callback()
  }
}

export function idCardNumber(rule, value, callback) {
  // 18位身份证号
  if (/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[\dXx]$/.test(value) === false) {
    callback(new Error("请输入正确的身份证号"));
  } else {
    callback()
  }
}

export function password1(rule, value, callback) {
  if (/^[\w\-]*$/.test(value) === false) {
    callback(new Error("不能使用字母、数字、特殊字符（-_）以外的字符"));
  } else {
    callback()
  }
}

export function password2(rule, value, callback) {
  if (/^(?!\d+$)(?!^[a-zA-Z]+$)(?!^[_\-]+$).{6,32}$/.test(value) === false) {
    callback(new Error("字母、数字、特殊字符（-_）应至少包含两种"));
  } else {
    callback()
  }
}

export function registeredCapital(rule, value, callback) {
  // 应确保输入的value是number类型
  if (value < 1000.0) {
    callback(new Error("注册资金不应少于1000.00元"));
  } else {
    callback()
  }
}

export function category(rule, value, callback) {
  if (/^[^,，]+$/.test(value) === false) {
    callback(new Error("类型标签中请不要出现 , 或 ，字符"));
  } else {
    callback()
  }
}

export function commodityPrice(rule, value, callback) {
  // 应确保输入的value是number类型
  if (value <= 0.00) {
    callback(new Error("商品价格应大于0.00元"));
  } else {
    callback()
  }
}

export function commodityStocks(rule, value, callback) {
  // 应确保输入的value是number类型
  if (value <= 0 || value > 100000000) {
    callback(new Error("商品库存应介于1~100,000,000"));
  } else {
    callback()
  }
}

export function moreThanZero(rule, value, callback) {
  // 应确保输入的value是number类型
  if (value <= 0) {
    callback(new Error("该数值应当大于0"));
  } else {
    callback()
  }
}